- Задачи
- [EPIC-MDM-002] Culinary Recipe AI Synthesis Loop
- [MDM-BACKEND-011] Создать gRPC метод
validateAndFetchRecipe(RecipeRequest)]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9NRE0tMDAyL0VQSUMtTURNLTAwMi9bTURNLTAxMV0gdmFsaWRhdGVBbmRGZXRjaFJlY2lwZS5odG1sW01ETS1CQUNLRU5ELTAxMV0t0KHQvtC30LTQsNGC0YwtZ1JQQy3QvNC10YLQvtC0LWB2YWxpZGF0ZUFuZEZldGNoUmVjaXBlKFJlY2lwZVJlcXVlc3Qp"} [[MDM-MIGRATION-002] Создать схему кулинарной книги]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9NRE0tMDAyL0VQSUMtTURNLTAwMi9NRE0tMDA2Lmh0bWxbTURNLU1JR1JBVElPTi0wMDJdLdCh0L7Qt9C00LDRgtGMLdGB0YXQtdC80YMt0LrRg9C70LjQvdCw0YDQvdC+0Lkt0LrQvdC40LPQuA=="} [[MDM-BACKEND-004] Создать эмиттер запросов на синтез]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9NRE0tMDAyL0VQSUMtTURNLTAwMi9NRE0tMDA3Lmh0bWxbTURNLUJBQ0tFTkQtMDA0XS3QodC+0LfQtNCw0YLRjC3RjdC80LjRgtGC0LXRgC3Qt9Cw0L/RgNC+0YHQvtCyLdC90LAt0YHQuNC90YLQtdC3"} [[MDM-BACKEND-005] Создать обработчик тех-карт ИИ]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9NRE0tMDAyL0VQSUMtTURNLTAwMi9NRE0tMDA4Lmh0bWxbTURNLUJBQ0tFTkQtMDA1XS3QodC+0LfQtNCw0YLRjC3QvtCx0YDQsNCx0L7RgtGH0LjQui3RgtC10YUt0LrQsNGA0YIt0JjQmA=="} [[MDM-FRONTEND-003] Создать экран Cookbook (Рецепты)]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9NRE0tMDAyL0VQSUMtTURNLTAwMi9NRE0tMDA5Lmh0bWxbTURNLUZST05URU5ELTAwM10t0KHQvtC30LTQsNGC0Ywt0Y3QutGA0LDQvS1Db29rYm9vay0o0KDQtdGG0LXQv9GC0Ysp"} [[EPIC-PMA-001] End-to-End Distributed Trace Streaming]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tNTU="} [[PMA-BACKEND-001] Создать SSE-стример логов]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9QTUEtMDAxL0VQSUMtUE1BLTAwMS9QTUEtMDAxLmh0bWxbUE1BLUJBQ0tFTkQtMDAxXS3QodC+0LfQtNCw0YLRjC1TU0Ut0YHRgtGA0LjQvNC10YAt0LvQvtCz0L7Qsg=="} [[PMA-FRONTEND-002] Создать экран Observability во Flutter]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9QTUEtMDAxL0VQSUMtUE1BLTAwMS9QTUEtMDAyLmh0bWxbUE1BLUZST05URU5ELTAwMl0t0KHQvtC30LTQsNGC0Ywt0Y3QutGA0LDQvS1PYnNlcnZhYmlsaXR5LdCy0L4tRmx1dHRlcg=="} [[EPIC-PMA-002] Process Mining Loop & Case Analytics]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tNTY="} [[PMA-MIGRATION-003] Создать схему логов процессов]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9QTUEtMDAyL0VQSUMtUE1BLTAwMi9bUE1BLTAwM10gUHJvY2VzcyBNaW5pbmcgW01pZ3JhdGlvbl0uaHRtbFtQTUEtTUlHUkFUSU9OLTAwM10t0KHQvtC30LTQsNGC0Ywt0YHRhdC10LzRgy3Qu9C+0LPQvtCyLdC/0YDQvtGG0LXRgdGB0L7Qsg=="} [[PMA-BACKEND-007] Создать Метод AppendAuditLog()]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9QTUEtMDAyL0VQSUMtUE1BLTAwMi9bUE1BLTAwN10gQXBwZW5kQXVkaXRMb2cuaHRtbFtQTUEtQkFDS0VORC0wMDddLdCh0L7Qt9C00LDRgtGMLdCc0LXRgtC+0LQtQXBwZW5kQXVkaXRMb2coKQ=="} [[PMA-BACKEND-008] Создать Метод ProcessManualDishCooked()]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9QTUEtMDAyL0VQSUMtUE1BLTAwMi9bUE1BLTAwOF0gUHJvY2Vzc01hbnVhbERpc2hDb29rZWQuaHRtbFtQTUEtQkFDS0VORC0wMDhdLdCh0L7Qt9C00LDRgtGMLdCc0LXRgtC+0LQtUHJvY2Vzc01hbnVhbERpc2hDb29rZWQoKQ=="} [[PMA-BACKEND-009] Создать Метод ProcessInventoryMutationLog()]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9QTUEtMDAyL0VQSUMtUE1BLTAwMi9bUE1BLTAwOV0gUHJvY2Vzc0ludmVudG9yeU11dGF0aW9uTG9nLmh0bWxbUE1BLUJBQ0tFTkQtMDA5XS3QodC+0LfQtNCw0YLRjC3QnNC10YLQvtC0LVByb2Nlc3NJbnZlbnRvcnlNdXRhdGlvbkxvZygp"} [[PMA-BACKEND-004] Создать консьюмер бизнес-событий]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9QTUEtMDAyL0VQSUMtUE1BLTAwMi9QTUEtMDA0Lmh0bWxbUE1BLUJBQ0tFTkQtMDA0XS3QodC+0LfQtNCw0YLRjC3QutC+0L3RgdGM0Y7QvNC10YAt0LHQuNC30L3QtdGBLdGB0L7QsdGL0YLQuNC5"} [[PMA-BACKEND-005] Создать аналитический движок bupar]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9QTUEtMDAyL0VQSUMtUE1BLTAwMi9QTUEtMDA1Lmh0bWxbUE1BLUJBQ0tFTkQtMDA1XS3QodC+0LfQtNCw0YLRjC3QsNC90LDQu9C40YLQuNGH0LXRgdC60LjQuS3QtNCy0LjQttC+0LotYnVwYXI="} [[PMA-FRONTEND-006] Создать интерактивную карту жизни еды]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9ydS90YXNrcy9QTUEtMDAyL0VQSUMtUE1BLTAwMi9QTUEtMDA2Lmh0bWxbUE1BLUZST05URU5ELTAwNl0t0KHQvtC30LTQsNGC0Ywt0LjQvdGC0LXRgNCw0LrRgtC40LLQvdGD0Y4t0LrQsNGA0YLRgy3QttC40LfQvdC4LdC10LTRiw=="} [Потоки]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tNTc="} [Статья]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tNTg="} [🌐 Документация / Documentation]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI68J+MkCDQlNC+0LrRg9C80LXQvdGC0LDRhtC40Y8gLyBEb2N1bWVudGF0aW9u"} [Русская версия документации]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI60KDRg9GB0YHQutCw0Y8g0LLQtdGA0YHQuNGPINC00L7QutGD0LzQtdC90YLQsNGG0LjQuA=="} [/ru/general/arch.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L3J1L2dlbmVyYWwvYXJjaC5odG1s"} [English version of documentation]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6RW5nbGlzaCB2ZXJzaW9uIG9mIGRvY3VtZW50YXRpb24="} [/en/general/arch.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2VuL2dlbmVyYWwvYXJjaC5odG1s"} [Задачи]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWJyZWFkY3J1bWJzLdCX0LDQtNCw0YfQuA=="} [[EPIC-MDM-002] Culinary Recipe AI Synthesis Loop]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWJyZWFkY3J1bWJzLVtFUElDLU1ETS0wMDJdLUN1bGluYXJ5LVJlY2lwZS1BSS1TeW50aGVzaXMtTG9vcA=="} [[MDM-BACKEND-011] Создать gRPC методvalidateAndFetchRecipe(RecipeRequest)
[MDM-BACKEND-011] Создать gRPC метод `validateAndFetchRecipe(RecipeRequest)
Реализация gRPC-методов поиска и извлечения спецификаций рецептов
Author
MDM Domain Lead
Published
July 13, 2026
NoteКраткая карточка задачи
- Репозиторий / Компонент:
recipes-service(Домен MDM). - Контракт метода: HTTP Handler
Search()и gRPC методvalidateAndFetchRecipe(RecipeRequest) returns (RecipeResponse). - Ссылка на Метод: Интерфейс экрана Cookbook и деконструкции текстов
- Статус: Готово к реализации
- Инструкция по шагам:
- На Шаге 4–5: В методе
Searchвыполнить индексированный SQL-запрос к таблицеrecipe_book(совмещенный JOIN с пользовательскими рецептами) с обязательным ограничениемLIMIT 500для предотвращения сетевого оверхеда. Возвратить HTTP JSON-список на шлюз. - На Шаге 9: В gRPC-методе
validateAndFetchRecipeпринять входящийrecipe_id. Проверить факт существования рецепта и его статус модерации. Сделать выборку точного компонентного состава сырья из таблицыrecipe_ingredientsи вернуть структурированную спецификацию весов вcook-service.
- На Шаге 4–5: В методе